//
//  CZStatusListViewModel.swift
//  项目框架
//
//  Created by yang on 16/3/1.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit
import AFNetworking
class CZStatusListViewModel: NSObject {
    
    //定义成员变量接收数组
    var array :[CZStatusViewModel] = [CZStatusViewModel]()
    //发送网络请求
    func loadData(since_id: Int,max_id: Int,finish: (count : Int)->()){
    
    
        let afn = AFHTTPSessionManager()
        
        //拼接参数
        /*
        access_token	true	string	采用OAuth授权方式为必填参数，OAuth授权后获得。
        since_id	false	int64	若指定此参数，则返回ID比since_id大的微博（即比since_id时间晚的微博），默认为0。
        max_id	false	int64	若指定此参数，则返回ID小于或等于max_id的微博，默认为0。
        count	false	int	单页返回的记录条数，最大不超过100，默认为20。
        */
        let parmams = ["access_token":CZUserViewModel.shareInstance
            .access_token ?? "","max_id":max_id,"since_id":since_id]
        
        //发送请求
        afn.GET("https://api.weibo.com/2/statuses/home_timeline.json", parameters: parmams, progress: nil, success: { (_, JSON) -> Void in
            
            print(JSON)
            
            //字典转模型
            if let json = JSON as? [String:NSObject]{
            
                //
                if let statues = json["statuses"] as? [[String:NSObject]]{
                
                    // 定义一个临时的数组
                    var temp = [CZStatusViewModel]()
                    //遍历数组
                    for statue in statues{
                    
                        let statusModel = CZStatusModel(dict: statue)
                        
                        printLog(statusModel.id)

                        
                        let viewModel = CZStatusViewModel()
                        
                        viewModel.statusModel = statusModel
                        
                        //self.array.append(viewModel)
                        temp.append(viewModel)
                    }
                    /*
                    对数据进行拼接
                    怎么才能知道是 上拉更多的数据
                    */
                    if max_id > 0 {
                    
                        //是不是上拉数据
                        self.array = self.array + temp
                    }else{
                    
                        //因为temp是最新数据，所以要放在前面
                        self.array = temp + self.array
                    }
                        //刷新UI
                    finish(count:temp.count)
                    }
                
                }
            
            
            
            }) { (_, error) -> Void in
                
        }
    }
   
}
